// import com.alibaba.druid.sql.ast.SQLExpr;
// import com.alibaba.druid.sql.ast.SQLLimit;
// import com.alibaba.druid.sql.ast.SQLOrderBy;
// import com.alibaba.druid.sql.dialect.mysql.visitor.MySqlASTVisitor;
#pragma once
#include "MySqlStatementImpl.h"
#include "MySqlShowStatement.h"

class MySqlShowRuleStatusStatement : virtual public MySqlStatementImpl, virtual public MySqlShowStatement
{
public:
  BOOL_ptr lite = BOOL::TRUE;
  SQLOrderBy_ptr orderBy;
  SQLExpr_ptr where;
  SQLLimit_ptr limit;
  BOOL_ptr full;
  BOOL_ptr version;

  MySqlShowRuleStatusStatement();
  SHAREDOBJECT(MySqlShowRuleStatusStatement);
  SQLLimit_ptr getLimit();

  void setLimit(SQLLimit_ptr limit);

  SQLOrderBy_ptr getOrderBy();

  void setOrderBy(SQLOrderBy_ptr orderBy);

  SQLExpr_ptr getWhere();

  void setWhere(SQLExpr_ptr where);

  BOOL_ptr isLite();

  void setLite(BOOL_ptr lite);

  BOOL_ptr isFull();

  void setFull(BOOL_ptr full);

  void accept0(MySqlASTVisitor_ptr visitor);

  BOOL_ptr isVersion();

  void setVersion(BOOL_ptr version);
};
